/**
 * 强化日志工具
 * @param {String} label 标题
 * @param {Object} data 数据
 * @param {String} type 输出模式
 * @returns {Object} 传入的 data 数据
 */
export function log(label: string, data: any, type: string = "log"): any {
    console.group?.(label || "undefined")
    console.trace?.(new Date())
    console[type]?.(data)
    console.groupEnd?.()
    return data
}

/**
 * 闭包
 * @param {Boolean} debug 调试模式
 * @returns {Function} 导出处理后的方法
 */
export function logUse(debug: boolean): any {
    return debug == true ? log : function log(_1: string, data: any, _2: string): any {
        return data
    }
}

/**
 * 类
 * @param {Boolean} debug 调试模式
 */
export class logClass {
    log: any

    /**
     * 构造函数
     * @param {Boolean} debug 调试模式
     */
    constructor(debug: boolean) {
        this.log = logUse(debug) // 初始化日志工具
    }
}

// 默认导出
export default log